import java.util.ArrayList;

/**
 * 二叉树 后序遍历。
 * 首先遍历左子树，然后遍历右子树，最后访问根节点。
 */
public class TreeNodeDemo5 {
    public static void main(String[] args) {
        TreeNode head = new TreeNode(1);
        TreeNode headRight = new TreeNode(2);
        TreeNode node3 = new TreeNode(3);
        head.right = headRight;
        headRight.left = node3;
        // 这个二叉树 的结构在题里面是：{1，#，2,3}  #或者null。
        ArrayList<Integer> vars = new ArrayList<>();
        getAllNode(head, vars);
        System.out.println(vars);
    }

    private static void getAllNode(TreeNode head, ArrayList<Integer> vars) {
        if (head == null) {
            return;
        }else {
            vars.add(null);
        }
        if (head.left != null) {
            getAllNode(head.left, vars);
        }else {
            vars.add(null);
        }

        if (head.right != null) {
            getAllNode(head.right, vars);
        }else {
            vars.add(null);
        }
        vars.add(head.val);
    }
}
